const utilcpp = require('./cpp')
function login(getvalue){
 // 获取索引为3的元素的数值
 const startIndex = 3;
 const itemsToTake = parseInt(getvalue[startIndex], 16); // 将十六进制字符串转换为整数
 // 从索引为3的位置开始截取指定数量的项
 const slicedArr = getvalue.slice(startIndex + 1, startIndex + 1 + itemsToTake);
 //  console.log("截取后的数组",slicedArr); // 输出截取后的数组
 // 遍历数组中的每一项，并进行减法操作
  const resultArray = slicedArr.map(hexString => {
 // 将十六进制字符串转换为十进制数值再减去67
 const decimalValue = parseInt(hexString, 16)- 67;
 // // 将新的十进制数值转换回十六进制字符串
 // const newHexString = decimalValue.toString(16);
 return decimalValue;
 }); 
 //  console.log("计算完偏差之后的数组",resultArray);
 // 创建一个空字符串来存储转换后的字符
 let result = '';
 // 遍历数组中的每个数字
 for (let i = 0; i < resultArray.length; i++) {
   // 将数字转换为对应的ASCII码字符，并将字符追加到结果字符串中
   result += String.fromCharCode(resultArray[i]);
 }
 // 输出转换后的字符串
  // console.log("转换为对应的ASCII码字符",result);
  return result
}
function request(src,key){
  console.log("SN密钥",key)
  console.log("src",src)
  //通过中控SN找整车SN
  wx.request({
    url: 'https://api.gowow.cn/factory/ecu/to_motor',
    data: {
      "ecuSn": src
    },
    method:'GET',
    success (res) {
      console.log(res);
      wx.setStorageSync('motorSn', res.data.data);
    }
  }) 
  const dst = utilcpp.tea_encrypt(src,key)
  console.log("dst=" + dst);
  // 初始化数组
  var outPassword = [];
  var encryptData = dst; // 请将encryptData数组填充为你需要的数据
  // 循环迭代
  for (var i = 0; i < 8; ++i) {
      outPassword[i] = encryptData[i] ^ encryptData[i + 8];
      outPassword[i] = (outPassword[i] + 0x43) & 0xff
  }
  // console.log("函数request执行了");
  return outPassword
}
function byteArrayToHexString(byteArray) {
  return byteArray.map(b => b.toString(16).padStart(2, '0')).join('')
}
function uint8Array(uint8Array) {
  return Array.prototype.map
    .call(uint8Array, (x) => ('00' + x.toString(16)).slice(-2))
    .join('');
}
function sum(value){
  // console.log(byteArrayToHexString(value));
  var sum = 0;
  for(var i = 0; i < value.length; ++i){
    sum += value[i];
  }
  // console.log("sum的和是：sum=" + sum);
  // console.log("sum & 0xff=" + (sum & 0xff));
  return sum & 0xff;
}




module.exports = {
  login,
  sum,
  request,
  byteArrayToHexString,
  uint8Array
}